package util;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Utilities {
	// 글 목록에서 한페이지에 보여질 게시물의 갯수
	public static final int CONTENT_PER_PAGE = 5;
	// 한 페이지 그웁으로 묶을 페이지의 개수
	public static final int PAGE_PER_PAGEGROUP = 10;
	private Utilities(){}
	/**
	 * 호출된 시점의 일시를 14자리 String 값으로 만들어 return
	 * 예) 20120512100524 (yyyyMMddHHmmss)
	 * @return
	 */
	public static String getNow(){
		Date date = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
		return format.format(date);
	}
	/**
	 * 호출된 시점의 일시를 8자리 String 값으로 만들어 return
	 * 예) 20120512100524 (yyyyMMdd)
	 * @return
	 */
	public static String getNowForMember(){
		Date date = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
		return format.format(date);
	}
	/**
	 * 인수로 14자리 형태 일시를 받아 날짜만 yyyy.MM.dd 형태의 String으로 만들어 return
	 * - 목록에서 작성일시를 보여줄때 사용할 메소드
	 * 예) 20120512100524 -> 2012.05.12
	 * @param dateTime
	 * @return
	 */
	public static String changeDayFormat(String dateTime){
		// subString 사용
		String date = dateTime.substring(0,4)+"."+dateTime.substring(4,6)+"."+dateTime.subSequence(6, 8);
		return date;
	}
	/**
	 * 인수로 14자리 형태의 일시를 받아 yyyy.MM.dd HH:mm:ss 형태의 String 으로 만들어 return
	 * - 글 상세보기에서 사용할 메소드
	 * 예) 20120412100524 -> 2012.05.12 10:05:24
	 * @param dateTime
	 * @return
	 */
	public static String changeDayTimeForFormat(String dateTime){
		// subString 사용
		String date
						= dateTime.substring(0,4)+"."+dateTime.substring(4,6)+"."+dateTime.subSequence(6, 8)
						+" "+dateTime.substring(8, 10)+":"+dateTime.substring(10, 12)+":"+dateTime.substring(12, 14);						
		return date;
	}
	
	/**
	 * TextArea에서 입력 받은 글 내용을 HTML로 출력 될 때에 맞는 형식으로 변경하는 메소드
	 * 새글 등록, 답변 글 등록, 글 수정 시 사용
	 * > - %gt;
	 * < - %lt;
	 * \n - <br>
	 * 공백 - %nbsp;
	 * @param content
	 * @return
	 */
	public static String changeContentForDB(String content){
		content = content.replaceAll(">", "&gt;");
		content = content.replaceAll("<", "&lt;");
		content = content.replaceAll("\n", "<br>");
		content = content.replaceAll(" ", "&nbsp;");
		return content;
	}
	/**
	 * TextArea에서 입력 받은 글 내용을 HTML로 출력 될 때에 맞는 형식으로 변경하는 메소드
	 * 새글 등록, 답변 글 등록, 글 수정 시 사용
	 * <br> - \n
	 * %gt; - >
	 * %lt; - <
	 * %nbsp; - 공백
	 * @param content
	 * @return
	 */
	public static String changeContentTextArea(String content){
		content = content.replaceAll( "<br>","\n");
		content = content.replaceAll( "&gt;",">");
		content = content.replaceAll( "&lt;","<");
		content = content.replaceAll( "&nbsp;"," ");
		return content;
	}
	
	public static String changeBirthForDB(String year, String month, String day){
		if(month.length()!=2){
			month = "0".concat(month);
		}
		if(day.length()!=2){
			day = "0".concat(day);
		}
		return year+month+day;
	}
	
}
